package object;
/**
 * 测试object类中的相关方法
 * Object是所有类的顶级超类.里面有几个经常被子类重写的方法,其中包括toString和equals
 */
public class Demo {
    public static void main(String[] args) {
        Point p=new Point(20,50);
        /*
            Object已经实现了toString方法.直接继承下来时返回的字符串内容为当前对象的
            地址信息.格式为:类名@地址.
            Object定义的方法：
            String toString();
            用于将当前对象转换为一个字符串，很少会主动调用这个方法，多用于
            输出对象内容使用，子类重写时，默认返回的字符串内容是当前对象的地址信息，实际开发作用不大。
         */
        String str=p.toString();//几乎不会使用
        System.out.println(str);
        //以下情况的对象toString会被调用
        //1：输出一个对象到控制台时。
        System.out.println(p);//方法内部会调用p.toString()将返回的字符串输出到控制台

        //任何对象和字符串连接结果都是字符串（过程中会被其他对象调用toString()转换为String后连接
        String line="hello!!!"+p;
        System.out.println(line);

        Point p1=new Point(20,50);
        System.out.println("p1"+p1);
        System.out.println(p.equals(p1));
         /*

            Object定义的方法：
            boolean equals(Object o)
            比较当前对象和参数对象o内容是否相同，相同则返回true或false。
            Object中该方法的实现内部用“==”比较，因此子类不重写该方法则没有实际意义。
         */
    }
}
